﻿using System;
using System.Collections.Generic;
using System.Text;
using CeA.Reports.Atendimento.DataAccess.Helpers;

namespace CeA.Reports.Atendimento.DataAccess.Criteria {
    [Serializable]
    public class TempoAtendimentoFilter : CriteriaBase {
        private int m_tempoAtendimento;
        private int m_tempoEsperaMaior;
        private int m_tempoAtendimentoMaior;
        private string m_tempoEsperaMaiorFormatado;
        private string m_tempoAtendimentoMaiorFormatado;

        public TempoAtendimentoFilter() : base() {
            m_tempoAtendimento = int.MaxValue;
        }

        
        public TempoAtendimentoFilter(int tempoAtendimento, DateTime dataInicial, DateTime dataFinal):base() {
            m_tempoAtendimento = tempoAtendimento;
            base.DataInicial = dataInicial;
            base.DataFinal = dataFinal;            
        }

        /// <summary>
        /// Gets or sets the tempo atendimento em segundos.
        /// </summary>
        /// <value>The tempo atendimento.</value>
        public int TempoAtendimento {
            get { return m_tempoAtendimento; }
            set { m_tempoAtendimento = value; }
        }

        public int TempoEsperaMaior {
            get { return m_tempoEsperaMaior; }
            set {
                m_tempoEsperaMaior = value;
                m_tempoEsperaMaiorFormatado = ConvertHelper.SecondToHour(m_tempoEsperaMaior);
            }
        }

        public int TempoAtendimentoMaior {
            get { return m_tempoAtendimentoMaior; }
            set {
                m_tempoAtendimentoMaior = value;
                m_tempoAtendimentoMaiorFormatado = ConvertHelper.SecondToHour(m_tempoAtendimentoMaior);
            }
        }

        public string TempoEsperaMaiorFormatado {
            get { return m_tempoEsperaMaiorFormatado; }
            set {
                m_tempoEsperaMaiorFormatado = value;
                m_tempoEsperaMaior = ConvertHelper.HourToSecond(m_tempoEsperaMaiorFormatado);
            }
        }

        public string TempoAtendimentoMaiorFormatado {
            get { return m_tempoAtendimentoMaiorFormatado; }
            set {
                m_tempoAtendimentoMaiorFormatado = value;
                m_tempoAtendimentoMaior = ConvertHelper.HourToSecond(m_tempoAtendimentoMaiorFormatado);
            }
        }
    }
}
